use regex::Regex;

/// 是否是 rgb 颜色
pub fn is_rgb(color: &str) -> bool {
    let re = Regex::new(r"^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$").unwrap();
    re.is_match(color)
}

/// 是否是 argb 颜色
pub fn is_rgba(color: &str) -> bool {
    let re = Regex::new(r"^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d?\.?\d+)\)$").unwrap();
    re.is_match(color)
}

/// 是否是 hex 颜色
pub fn is_hex(color: &str) -> bool {
    let re = Regex::new(r"^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$").unwrap();
    re.is_match(color)
}

/// 是否是 hexa 颜色
pub fn is_hexa(color: &str) -> bool {
    let re = Regex::new(r"^#([0-9a-fA-F]{4}|[0-9a-fA-F]{8})$").unwrap();
    re.is_match(color)
}

/// 是否是 hsl 颜色
pub fn is_hsl(color: &str) -> bool {
    let re = Regex::new(r"^hsl\((\d{1,3}),\s*(\d{1,3})%,\s*(\d{1,3})%\)$").unwrap();
    re.is_match(color)
}

/// 是否是 hsla 颜色
pub fn is_hsla(color: &str) -> bool {
    let re = Regex::new(r"^hsla\((\d{1,3}),\s*(\d{1,3})%,\s*(\d{1,3})%,\s*(\d?\.?\d+)\)$").unwrap();
    re.is_match(color)
}

